package weaver.interfaces.jjy.duss.hr;

import com.sap.mw.jco.JCO;
import weaver.general.BaseBean;
import weaver.interfaces.jjy.duss.util.SAPConnPool;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @Title: ecology-9-demo
 * @Company: 泛微软件
 * @author: weaver.Dusongsong
 * @version: 1.0
 * @CreateDate: 2020-05-09
 * @Description: 编制上报(编制上报回传SAP)
 * @ModifyLog:
 **/

public class ZFM_HR_BZ_ZB {
    public Map execute(List<Map<String, String>> mapList) {
        SAPConnPool SAPConn = new SAPConnPool();
        BaseBean baseBean = new BaseBean();
        JCO.Client myConnection = SAPConn.getConnection();
        JCO.Function bapi = SAPConn.excuteBapi("ZFM_HR_BZ_ZB");
        JCO.ParameterList input = bapi.getImportParameterList();//输入参数和结构处理
        JCO.ParameterList inputtable = bapi.getTableParameterList();//输入表的处理

        //入参为表
        JCO.Table t1 = inputtable.getTable("EV_DATA");
        for (Map<String, String> map :mapList){
            t1.appendRow();
            t1.setValue(map.get("NUMID"), "NUMID");       //唯一标识
            t1.setValue(map.get("SXRQ"), "SXRQ");         //生效日期
            t1.setValue(map.get("BZLX"), "BZLX");         //编制类型
            t1.setValue(map.get("ZT"), "ZT");             //状态文本
            t1.setValue(map.get("HDRS_G"), "HDRS_G");     //核定人数（高层）
            t1.setValue(map.get("HDRS_Z"), "HDRS_Z");     //核定人数（中层）
            t1.setValue(map.get("HDRS_M"), "HDRS_M");     //核定人数（主管）
            t1.setValue(map.get("HDRS_J"), "HDRS_J");     //核定人数（基层）
            t1.setValue(map.get("SBRS_G"), "SBRS_G");     //申报人数（高层）
            t1.setValue(map.get("SBRS_Z"), "SBRS_Z");     //申报人数（中层）
            t1.setValue(map.get("SBRS_M"), "SBRS_M");     //申报人数（主管）
            t1.setValue(map.get("SBRS_J"), "SBRS_J");     //申报人数（基层）
        }

        baseBean.writeLog("mapList="+mapList.toString());
        //执行函数
        myConnection.execute(bapi);
        JCO.ParameterList out = bapi.getExportParameterList();//输出参数和结构处理
        JCO.ParameterList Table00 = bapi.getTableParameterList();//输出表的处理

        //返回处理结果以及日志
        JCO.Structure stu = out.getStructure("EV_OUTPUT");
        Map<String, String> mapreturn = new HashMap<>();
        String flag = (String) stu.getValue("ZFLAG");
        String message = (String) stu.getValue("ZMESG");
        mapreturn.put("flag",flag);
        mapreturn.put("message",message);
        JCO.releaseClient(myConnection);
        return mapreturn;
    }

    public static void main(String[] args) {
        List<Map<String, String>> mapList = new ArrayList<>();
        Map<String, String> map = new HashMap<>();
        map.put("NUMID" , "123456");       //OA主键
        map.put("SXRQ" , "20200512");      //生效日期
        map.put("BZLX" , "1");            //编制类型
        map.put("ZT" , "02");             //状态文本
        map.put("HDRS_G" , "0");     //核定人数（高层）
        map.put("HDRS_Z" , "0");     //核定人数（中层）
        map.put("HDRS_M" , "0");     //核定人数（主管）
        map.put("HDRS_J" , "0");     //核定人数（基层）
        map.put("SBRS_G" , "0");     //申报人数（高层）
        map.put("SBRS_Z" , "0");     //申报人数（中层）
        map.put("SBRS_M" , "7");     //申报人数（主管）
        map.put("SBRS_J" , "53");     //申报人数（基层）
        mapList.add(map);
        ZFM_HR_BZ_ZB bz_zb = new ZFM_HR_BZ_ZB();
        Map<String, String> resultMap = bz_zb.execute(mapList);
        System.out.println(resultMap.toString());

    }
}
